package com.ktjy.reflection;

import com.ktjy.pojo.Employee;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class main {
    public static void main(String[] args) throws Exception {
        Class clz = Class.forName("com.ktjy.pojo.Employee");
//        Constructor declaredConstructor = clz.getDeclaredConstructor();
//        Object o = declaredConstructor.newInstance();
//        Field empNo = clz.getDeclaredField("empNo");
//        Field empName = clz.getDeclaredField("empName");
//        Field empPost = clz.getDeclaredField("empPost");
//        Field empSalary = clz.getDeclaredField("empSalary");
//        empNo.setAccessible(true);
//        empSalary.setAccessible(true);
//        empName.setAccessible(true);
//        empPost.setAccessible(true);
//        empNo.set(o,"JD001");
//        empName.set(o,"福星");
//        empPost.set(o,"java软件开发工程师");
//        empSalary.set(o,12000);
//        Method showInfo = clz.getDeclaredMethod("showInfo");
//        showInfo.invoke(o);

//        Constructor declaredConstructor = clz.getDeclaredConstructor();
//        Object o = declaredConstructor.newInstance();
//        Field empNo = clz.getDeclaredField("empNo");
//        Field empName = clz.getDeclaredField("empName");
//        Field empPost = clz.getDeclaredField("empPost");
//        Field empSalary = clz.getDeclaredField("empSalary");
//        empNo.setAccessible(true);
//        empName.setAccessible(true);
//        empPost.setAccessible(true);
//        empSalary.setAccessible(true);
//        empNo.set(o,"JD001");
//        empName.set(o,"福星");
//        empPost.set(o,"java软件开发工程师");
//        empSalary.set(o,12000);
//        Method showInfo = clz.getDeclaredMethod("showInfo");
//        showInfo.invoke(o);

//        Constructor declaredConstructor = clz.getDeclaredConstructor();
//        Object o = declaredConstructor.newInstance();
//        Field emoNO= clz.getDeclaredField("empNo");
//        Field empName= clz.getDeclaredField("empName");
//        Field empPost= clz.getDeclaredField("empPost");
//        Field empSalary= clz.getDeclaredField("empSalary");
//        empName.setAccessible(true);
//        empPost.setAccessible(true);
//        empSalary.setAccessible(true);
//        emoNO.setAccessible(true);
//        emoNO.set(o,"JD111");
//        empName.set(o,"福星");
//        empPost.set(o,"java软件开发工程师");
//        empSalary.set(o,12000);
//        Method showInfo = clz.getDeclaredMethod("showInfo");
//        showInfo.invoke(o)；
//
//
//        Constructor declaredConstructor = clz.getDeclaredConstructor();
//        Object object = declaredConstructor.newInstance();
//        Field emoNo = clz.getDeclaredField("empNo");
//        Field empName = clz.getDeclaredField("empName");
//        Field empPost = clz.getDeclaredField("empPost");
//        Field empSalary = clz.getDeclaredField("empSalary");
//        emoNo.setAccessible(true);
//        empName.setAccessible(true);
//        empPost.setAccessible(true);
//        empSalary.setAccessible(true);
//        emoNo.set(object,"1");
//        empName.set(object,"dada");
//        empPost.set(object,"22");
//        empSalary.set(object,1000000000);
//        Method showInfo = clz.getDeclaredMethod("showInfo");
//        showInfo.invoke(object);
        Constructor declaredConstructor = clz.getDeclaredConstructor();
        Object o = declaredConstructor.newInstance();
        Field empNo = clz.getDeclaredField("empNo");
        Field empName = clz.getDeclaredField("empName");
        Field empPost = clz.getDeclaredField("empPost");
        Field empSalary = clz.getDeclaredField("empSalary");
        empNo.setAccessible(true);
        empName.setAccessible(true);
        empPost.setAccessible(true);
        empSalary.setAccessible(true);
        empNo.set(o,"111");
        empName.set(o,"jack");
        empPost.set(o,"222");
        empSalary.set(o,2000);
        Method showInfo = clz.getDeclaredMethod("showInfo");
        showInfo.invoke(o);

    }
}
